#include"comm.hpp"

int main()
{
  //创建管道文件
  umask(0);//防止系统默认的掩码影响本进程的权限
  int n=mkfifo(fifoname.c_str(),mode);
  if(n!=0)
  {
    //创建管道失败了
    std::cout<<errno<<":"<<strerror(errno)<<std::endl;
    return 1;
  }
  //到这里就是船舰成功了
  std::cout<<"创建成功!"<<std::endl;
  //直接打开管道文件
  int rfd=open(fifoname.c_str(),O_RDONLY);
  if(rfd<0)
  {
    std::cout<<errno<<":"<<strerror(errno)<<std::endl;
    return 2;
  }
  std::cout<<"打开成功,开始通信!"<<std::endl;
  char buffer[NUM];
  //服务端负责读取客户端发送的内容
  while(true)
  {
    buffer[0]='\0';
    ssize_t n= read(rfd,buffer,sizeof(buffer)-1);
    if(n>0)
    {
      //说明读取到了数据
      buffer[n]='\0';
      std::cout<<buffer<<std::endl;
    }
    else if(n==0)
    {
      //管道文件为空，client退出了
      std::cout<<"client quit, me too"<<std::endl;
      break;
    }
    else
    {
      std::cout<<errno<<":"<<strerror(errno)<<std::endl;
      break;
    }
  }
  close(rfd);
 // unlink(fifoname.c_str());
  return 0;
}
